Distributed gradient descent for solving optimal power flow in radial networks

ABSTRACT

Node controllers and power distribution networks in accordance with embodiments of the invention enable distributed power control. One embodiment includes a node controller comprising a memory containing: a plurality of node operating parameters; and a plurality of node operating parameters describing operating parameters for a set of at least one node selected from the group consisting of at least one downstream node and at least one upstream node; wherein the processor is configured by the node controller application to: receive and store in memory a plurality of coordinator parameters describing operating parameters of a node coordinator by the network interface; and calculate updated node operating parameters using an iterative gradient projection process to determine updated node parameters using node operating parameters that describe operating parameters of node and operating parameters of the set of at least one node, where each iteration is determined by the coordinator parameters.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present invention claims priority to U.S. Provisional Patent Application Ser. No. 62/032,951 entitled “Distributed Gradient Decent for Solving for Optimal Power Flow in Multiphase Radial Networks” to Gan et al, filed Aug. 4, 2014, and U.S. Provisional Patent Application Ser. No. 62/042,902 entitled “Distributed Gradient Descent for Solving for Optimal Power Flow in Multiphase Radial Networks” to Gan et al., filed Aug. 28, 2014. The disclosures of U.S. Provisional Patent Application Ser. Nos. 62/032,951 and 62/042,902 are herein incorporated by reference in their entirety.

STATEMENT OF FEDERALLY SPONSORED RESEARCH

This invention was made with government support under DE-AR000022 awarded by the Department of Energy and under CNS0911041 awarded by the National Science Foundation. The government has certain rights in the invention.

FIELD OF THE INVENTION

The present invention generally relates to optimal power flow and more specifically relates to distributed gradient projection processes for solving for optimal power flow.

BACKGROUND

An incredible amount of infrastructure is relied upon to transport electricity from power stations, where the majority of electricity is currently generated, to individual homes. Power stations can generate electricity in a number of ways including using fossil fuels or using renewable sources of energy such as solar, wind, and hydroelectric sources. Once electricity is generated it travels along transmission lines to substations. Substations typically do not generate electricity, but can change the voltage level of the electricity as well as provide protection to other grid infrastructure during faults and outages. From here, the electricity travels over distribution lines to bring electricity to individual homes. The infrastructure used to transport electricity through the power grid can be viewed as a graph comprised of nodes and lines. The power stations, substations, and any end user can be considered nodes within the graph. Transmission and distribution lines connecting these nodes can be represented by lines.

Distributed power generation, electricity generation at the point where it is consumed, is on the rise with the increased use of residential solar panels and is fundamentally changing the path electricity takes to many users' homes. The term “smart grid” describes a new approach to power distribution which leverages advanced technology to track and manage the distribution of electricity. A smart grid applies upgrades to existing power grid infrastructure including the addition of more renewable energy sources, advanced smart meters that digitally record power usage in real time, and bidirectional energy flow that enables the generation and storage of energy in additional locations along the electrical grid.

SUMMARY OF THE INVENTION

Node controllers and power distribution networks in accordance with embodiments of the invention enable distributed power control. One embodiment includes a node controller comprising a network interface; a processor; a memory containing: a node controller application; a plurality of node operating parameters describing the operating parameters of a node; and a plurality of node operating parameters describing operating parameters for a set of at least one node selected from the group consisting of at least one downstream node and at least one upstream node; wherein the processor is configured by the node controller application to: receive and store in memory a plurality of coordinator parameters describing the operating parameters of a node coordinator by the network interface; and calculate a plurality of updated node operating parameters using an iterative gradient projection process to determine the updated node parameters using the node operating parameters that describe the operating, parameters of the node and the operating parameters of the set of at least one node, where each iteration in the iterative process is determined by the coordinator parameters.

In a further embodiment, the iterative gradient projection process is a distributed process.

In another embodiment, the iterative gradient projection process further comprises a backwards forwards sweep process.

In a still further embodiment, the iterative gradient projection process further comprises calculating gradient parameters.

In still another embodiment, the iterative gradient projection process further comprises calculating a gradient step size.

In a yet further embodiment, the backward forward sweep process further comprises a backward sweep process and a forward sweep process.

In yet another embodiment, the backward sweep process further comprises: receiving operating parameters from the one or more downstream nodes; calculating a plurality of updated node operating parameters using the operating parameters from the one or more downstream nodes; and sending the plurality of updated node operating parameters to the one or more upstream nodes.

In a further embodiment again, the forward sweep process further comprises: receiving operating parameters from the one or more upstream nodes; calculating a plurality of updated node operating parameters using the operating parameters from the one or more upstream nodes; and sending the plurality of updated node operating, parameters to the one or more downstream nodes.

In another embodiment again, calculating, gradient parameters further comprises exact calculation of the gradient parameters.

In a further additional embodiment, calculating gradient parameters further comprises an approximation of the gradient parameters.

In another additional embodiment, calculating gradient parameters is a distributed process.

In a still yet further embodiment, calculating a gradient step size is evaluated using a line search.

In still yet another embodiment, the node is part of a radial network topology.

In a still further embodiment again, node operating parameters include power injection, current, and impedance.

In still another embodiment again, the node is configured to control operating parameters as components in a single phase power distribution network.

Another further embodiment of the method of the invention includes: the node is configured to control operating parameters as components in a multiphase balanced power distribution network.

Still another further embodiment of the method of the invention includes: the node is configured to control operating parameters as components in a multiphase unbalanced power distribution network.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram conceptually illustrating a power distribution network in accordance with an embodiment of the invention.

FIG. 2 is a diagram conceptually illustrating nodes utilizing node controllers connected to a communication network in accordance with an embodiment of the invention.

FIG. 3 is a block diagram illustrating a coordinator controller in accordance with an embodiment of the invention.

FIG. 4 is a block diagram illustrating a node controller in accordance with an embodiment of the invention.

FIG. 5 is a diagram illustrating a radial network in accordance with an embodiment of the invention.

FIG. 6 is a diagram illustrating the relationship between nodes and operating parameters in accordance with an embodiment of the invention.

FIG. 7 is a flow chart illustrating a process for solving for optimal power flow in a radial network in accordance with an embodiment of the invention.

FIG. 8 is a flow chart illustrating a process to solve for optimal power flow utilizing a gradient projection solution in accordance with an embodiment of the invention.

FIG. 9 is pseudocode illustrating a gradient calculation process utilized in a gradient projection process for solving for optimal power flow in accordance with an embodiment of the invention.

FIG. 10 is pseudocode illustrating a line search process utilized in a gradient projection process solving for optimal power flow in accordance with an embodiment of the invention.

FIG. 11 is pseudocode illustrating a process to solve for optimal power flow a gradient descent process solving for optimal power flow in accordance with an embodiment of the invention.

FIG. 12 is a diagram illustrating backwards sweep process and forwards sweep process utilized in a gradient decent process for solving for optimal power flow.

FIG. 13 is a flow chart illustrating a distributed gradient process utilized in solving for optimal power flow in accordance with an embodiment of the invention.

FIGS. 14A-14B are flow charts illustrating a distributed backwards sweep process and a distributed forwards sweep respectively utilized in a gradient projection process to solve for optimal power flow, in accordance with an embodiment of the invention.

FIG. 15 is pseudocode illustrating a distributed gradient process utilized in solving for optimal power flow in accordance with an embodiment of the invention.

FIG. 16 is a flow chart illustrating a node controller implementing a distributed gradient descent process utilized in solving for optimal power flow in accordance with an embodiment of the invention.

FIG. 17 is a flow chart illustrating a coordinator controller implementing a distributed gradient process utilized in solving for optimal power flow in accordance with an embodiment of the invention.

FIG. 18 is pseudocode illustrating a distributed gradient decent process utilized in solving for optimal power flow in accordance with an embodiment of the invention.

FIGS. 19A-19B are diagrams conceptually illustrating a 47-node (47-bus) network and a 56-node (56-bus) network respectively.

FIG. 20 is a table illustrating parameters of a 47-node (47-bus) network.

FIG. 21 is a table illustrating parameters of a 56-node (56-bus) network.

FIG. 22 is a table illustrating simulated results of a distributed gradient projection process.

DETAILED DESCRIPTION

Turning now to the drawings, systems and methods for distributed control of power distribution systems configured as radial networks in accordance with embodiments of the invention are illustrated. Radial networks have a tree topology where each node is connected to a single unique ancestor and a set of children. Ancestor nodes and any ancestors of ancestor nodes are typically upstream nodes. Similarly, children nodes and any children of children nodes are typically downstream nodes. Radial networks are commonly utilized in modeling the distribution side of the power grid. In many embodiments, processing nodes are distributed throughout the pourer distribution network that control power load, distributed power generation, and remote battery storage. In several embodiments, the processing nodes control the operational parameters of aspects of the power distribution network in an effort to achieve what is often referred to as Optimal Power Flow (OPF). Achieving OPF involves optimizing the operation of a power system with respect to one or more objectives. These objectives can include (but are not limited to) minimizing the amount of power lost during the transmission of power to a user, minimizing the cost of generating the power needed for the system, and/or seeking to optimize other general operational constraints.

In a number of embodiments, the processing nodes within the power distribution network perform centralized, distributed, or hybrid processes that coordinate the control of the power distribution network. Centralized processes can use a centralized processing unit to calculate optimal power flow of all nodes within the network. Distributed processes can be based upon messages passed between the processing node and its upstream and/or downstream nodes within the radial network. Hybrid processes use a combination of centralized and distributed processing steps. In several embodiments, individual processing nodes determine the voltage, power injection, current, and/or impedance of a given power load, distributed power generation, or remote battery storage within the power distribution network by performing a gradient calculation. In many embodiments, this gradient calculation can be part of a gradient projection process (sometimes referred to as a gradient descent process).

Gradient projection processes typically involve a gradient calculation and choosing a step size to update optimization parameters. Gradient calculations can involve exact and/or approximate calculations of gradients. In various embodiments, gradient calculations can be distributed processes. In many embodiments, a line search can be utilized to update step size. In many embodiments a line search may also be a distributed calculation.

Systems and methods for performing distributed control of radial power distribution networks to achieve OPF and solutions to the distributed OPF problem that can be utilized in the implementation of such systems and methods in accordance with embodiments of the invention are discussed further below.

Radial Power Distribution Networks

A power distribution network in accordance with an embodiment of the invention is shown in FIG. 1. Electricity is generated in power generator 102. Power transmission lines 104 can transmit electricity between the power generator and power substation 106. Power substation 106 additionally can connect to large storage battery 108, which temporarily stores electricity, as well as power distribution lines 110. The power distribution lines 110 can transmit electricity from the power substation to homes 112. The homes can include solar panels 114, a house battery 116, and/or an electric car 118. Power distribution networks can transmit electricity in many ways. When alternating current is used, voltage reverses direction at regular intervals. When only one voltage source is used, the power distribution network is described as single phase. When several sources are used, and the sources are equally distributed in equally spaced regular intervals (typically 120 degrees for a commonly used three phase network), the power distribution network is described as a multiphase balanced network. Single phase problems and multiphase balanced network problems can often be solved with similar analysis. In the discussion to follow, networks that distribute power in a single phase or a multiphase balanced manner will both be referred to as single phase networks. An alternative method of distributing power is multiphase unbalanced. In this manner of power distribution, several voltage sources are unevenly spaced. Multiphase unbalanced networks often require different analysis than single phase networks and will be referred to as multiphase networks in the discussion to follow.

The power generator 102 can represent a power source including those using fossil fuels, nuclear, solar, wind, or hydroelectric power. Substation 106 changes the voltage of the electricity for more efficient power distribution. Solar panels 114 are distributed power generation sources, and can generate power to supply the home as well as generate additional power for the power grid. House battery 116 can store excess electricity from the solar panels to power the home when solar energy is unavailable, or store electricity from the power grid to use at a later time. Substations 106, large storage batteries 108, homes 112, solar panels 114, house batteries 116, and electric cars 118 can all be considered to be nodes within the power distribution network and the distribution lines 110 can be considered to be lines within the power distribution network. In combination, nodes and lines form a radial network. In many embodiments, node controllers are located at nodes throughout the network to control the operating parameters of different nodes to achieve OPF. Connected nodes can be nodes within the power distribution network that are connected by distribution and/or transmission lines and can be controlled by a node controller. The type of control utilized can depend on the specifics of the network and may include distributed, centralized, and/or hybrid power control. Although many different systems are described above with reference to FIG. 1, any of a variety of power distribution network including node controllers may be utilized to perform power distribution as appropriate to the requirements of specific applications in accordance with embodiments of the invention. Nodes utilizing node controllers connected to a communication network in accordance with various embodiments of the invention are discussed further below.

Node Controller Architectures

Nodes utilizing node controllers connected to a communication network n accordance with an embodiment of the invention are shown in FIG. 2. Nodes 202 can connect to communication network 204 using a wired and/or wireless connection 206, in some embodiments the power distribution network can act in place of the communication network. The communication network may also be connected to one or more centralized computer systems 208 to monitor calculations made by or to send instructions to multiple node controllers to, for example, control power distribution in the network at a global level. Additionally, in many embodiments a database management system 210 can be connected to the network to track node data which, for example, may be used to historically track power usage at various locations over time. Although various system configurations are described above with reference to FIG. 2, any number of systems can be utilized to achieve centralized control of nodes within a power distribution network as appropriate to the requirements of specific applications in accordance with embodiments of the invention. Coordinator controllers in accordance with various embodiments of the invention are discussed further below.

Coordinator Controllers

A coordinator controller in accordance with an embodiment of the invention is shown in FIG. 3. In many embodiments, coordinator controller 300 can perform calculations using one or more computer systems to determine coordinator parameters for nodes on a radial network. In the illustrated embodiment, the coordinator controller includes at least one processor 302, an I/O interface 304, and a memory 306. The at least one processor 302, when configured by software stored in memory, can perform calculations on and make changes to data passing through the I/O interface as well as data stored in memory. In many embodiments, the memory 306 includes software including a coordinator application 308, as well as coordinator parameters 301, node parameters 312, and updated coordinator parameters 314. The coordinator controller can calculate coordinator parameters for the power distribution network using node parameters it receives through the I/O interface from nodes in the network and/or from node controllers similar to node controllers described below with respect to FIG. 4. The coordinator application 308 will be discussed in greater detail below and can enable the coordinator controller to broadcast coordinator parameters to nodes to enable the power distribution network to solve for optimal power flow using a distributed gradient projection process. In several embodiments, coordinator parameters can enable nodes to act in a concurrent manner while node controllers solve for optimal power flow. It should be readily apparent that the coordinator controller can be at a node (for example at the root node) and/or at a centralized computer system in the power distribution network. Although a number of different coordinator controllers are described above with reference to FIG. 3, any of a variety of computing systems can be utilized to coordinate control of nodes in a power distribution system as appropriate to the requirements of specific applications in accordance with many embodiments of the invention. Node controllers in accordance with several embodiments of the invention are discussed further below.

Node Controllers

A node controller in accordance with an embodiment of the invention is shown in FIG. 4. In various embodiments, node controller 400 can control the operating parameters of one or more nodes in a (radial) power distribution network. In the illustrated embodiment, the node controller includes at least one processor 402, an I/O interface 404, and memory 406. The at least one processor 402, when configured by software stored in memory can perform calculations on and make changes to data passing through the I/O interface as well as data stored in memory. In many embodiments, the memory 406 includes software including a node controller application 408 as well as node parameters 410, neighboring node parameters 412, coordinator parameters 414, and updated parameters 416. A node can calculate updated parameters by using a combination of its own node parameters, and/or neighboring node parameters received through the I/O interface from upstream and/or downstream nodes, and/or coordinator parameters received from a coordinator controller similar to a coordinator controller described above with reference to FIG. 2. The distributed optimal power flow application 408 will be discussed in greater detail below and can enable the node to perform calculations to solve for optimal power flow in a distributed manner. These distributed calculations performed on the node parameters can specifically involve a gradient projection process to solve for optimal power flow in a distributed manner. Various operating parameters of a node that can be controlled by a node controller are also discussed further below, and may include but are not limited to) power injection, current, resistance, impedance, and/or voltage. Although a number of different node controller implementations are described above with respect to FIG. 4, any of a variety of computing systems can be utilized to control a node within a power distribution system as appropriate to the requirements of specific applications in accordance with various embodiments of the invention. Radial networks in accordance with embodiments of the invention are discussed further below.

Radial Network Models

A radial network in accordance with an embodiment of the invention is shown in FIG. 5. In various embodiments, radial network 500 includes a node 502. Node 502 has an ancestor node 504 and one or more children nodes 506. Ancestor nodes are upstream from node 502. Children nodes are downstream from node 502. A radial network also has a unique root node 508. A detailed discussion of these nodes is provided further below. Although many radial networks are described above with reference to FIGS. 3 and 4, any of a variety of network configurations can be utilized as the network shape as appropriate to the requirements of specific applications in accordance with embodiments of the invention. The relationships between nodes and operation parameters in an OPF model are discussed further below.

The relationship between nodes and operating parameters in an OPF model in accordance with an embodiment of the invention is shown in FIG. 6. A node 602 has a unique ancestor node 604. Node 602 and unique ancestor node 604 are connected by line 614 and have a unique root node 606. Both node 602 and unique ancestor node 604 have a series of operating parameters. In many embodiments of the invention, operating parameters for node 602 include voltage 608 and power injection 616. Unique ancestor node 608 has corresponding voltage 610 and unique root node has a corresponding voltage 612. The line 614 also has operating parameters which for example include an impedance value as well as a current and/or power injection 618. The relationship between nodes and operating values will be discussed in greater detail below. Although various node operating parameters are described above with respect to FIG. 6, any of a variety of operating parameters can be controlled to achieve OPF as appropriate to the requirements of specific applications in accordance with embodiments of the invention. The OPF problem is discussed further below.

OPF Problems

To highlight the main components of the distributed process without worrying about the complication of multiple phases (which will be discussed later below), the network will be assumed to be single-phase and radial. In particular, the node (bus) voltages V_(i), node (bus) power injections s_(i), and branch power flows S_(ij) are scalars.

A distribution network can be modeled as the following: For each node (bus) i∈N, let ν_(i)=|V_(i)|² denote the square of its complex voltage magnitude, e.g., if the voltage is V_(i)=1.05∠120° per unit, then ν_(i)=1.05². Note that ν₀ is fixed and given, p_(i)=Re(s_(i)) and q_(i)=Im(s_(i)) can denote the real and reactive power injections respectively.

_(i) can denote the unique path from node (bus) 0 to node (bus) i. Since the network is radial, the path

_(i) is well-defined. For each line (i,j)∈ε, let l_(ij)=|I_(ij)|² denote the square of the complex current magnitude, e.g., if the current is I_(ij)=0.5∠10°, then l_(ij)=0.5². Let P_(ij)=Re(S_(ij)) and Q_(ij)=Im(S_(ij)) denote the real and reactive power flows respectively. Let r_(ij)=Re(z_(ij)) and x_(ij)=Im(z_(ij)) denote the resistance and impedance respectively.

In many embodiments, the following simplified statement of the OFF problem can be utilized:

min ⁢ ∑ i = 0 n ⁢ a i ⁢ p i 2 + b i ⁢ p i ⁢ ⁢ over ⁢ ⁢ p i ⁢ ⁢ and ⁢ ⁢ q i ⁢ ⁢ for ⁢ ⁢ i ∈ ⁢ p 0 , q 0 , v i ⁢ ⁢ for ⁢ ⁢ i ∈ + , ⁢ P ij , Q ij ⁢ ⁢ and ⁢ ⁢ ℓ ij ⁢ ⁢ for ⁢ ⁢ i → j ; ( 1 ⁢ a ) ⁢ ⁢ ∑ i : i → j ⁢ ( P ij - r ij ⁢ ℓ ij ) + p j = ∑ k : j → k ⁢ P jk , ⁢ j ∈ ; ( 1 ⁢ b ) ∑ i : i → j ⁢ ( Q ij - x ij ⁢ ℓ ij ) + q j = ∑ k : j → k ⁢ = Q jk , ⁢ j ∈ + ; ( 1 ⁢ c ) v i - v j = 2 ⁢ ( r ij ⁢ P ij + x ij ⁢ Q ij ) -  z ij  2 ⁢ ℓ ij , ⁢ i → j ; ( 1 ⁢ d ) ℓ ij = P ij 2 + Q ij 2 v i , ⁢ i → j ; ( 1 ⁢ e ) v _ i ≤ v i ≤ v _ i , ⁢ i ∈ + ; ( 1 ⁢ f ) p i ∈ [ p _ i , p _ i ] , ⁢ q i ∈ [ q _ i , q _ i ] , ⁢ i ∈ + . ( 1 ⁢ g )

The objective function (1a) is assumed to be separable, quadratic, and purely a function of p. Equations (1b)(1e) describe the physical laws that govern the power flow. Equation (1f) is the voltage regulation constraints, and equation (1g) is the power injection constraints.

Basic and Derived Variables

Given the substation voltage ν₀ and the branch node (bus) power injections s_(i) for i∈

⁺, there exists a unique practical power flow solution (

, [l_(ij)]_(i→j), [S_(ij)]_(i→j), s₀). Hence, the optimization variables can be classified into two categories: (1) Basic variables that are controllable. These variables include the branch node (bus) real and reactive power injections p_(i) and q_(i) for i∈

³⁰. (2) Derived variables that are uniquely determined by power flow equations (1b)-(1e) after specifying the basic variables. These variables include the substation power injection p₀, q₀, the branch node (bus) voltages ν_(i) for i∈

⁺, and line flows P_(ij), Q_(ij), l_(ij) for i→j.

In some embodiments, x=(p_(l), . . . , p_(n), q_(l), . . . q_(n)) can denote all basic variables. Then derived variables can be functions of x, i.e., p ₀ =p ₀(x), q ₀ =q ₀(x); ν_(i)=ν_(i)(x), i∈

⁺; P _(ij) =P _(ij)(x), Q _(ij)(x), l _(ij) =l _(ij)(x), i→j. Removing the derived variables can transform the statement of the OFF problem (1) into the following form:

$\begin{matrix} {{{\min\mspace{14mu} a_{0}{p_{0}^{2}(x)}} + {b_{0}{p_{0}(x)}} + {\sum\limits_{i = 1}^{n}\;\left( {{a_{i}p_{i}^{2}} + {b_{i}p_{i}}} \right)}}{{over}\mspace{14mu} x}{{{s.t.\mspace{14mu}{\underset{\_}{v}}_{i}} \leq {v_{i}(x)} \leq {\overset{\_}{v}}_{i}},\mspace{31mu}{{i \in \mathcal{N}^{+}};}}} & \left( {2a} \right) \\ {{{\underset{\_}{p}}_{i} \leq p_{i} \leq {\overset{\_}{p}}_{i}},{{\underset{\_}{q}}_{i} \leq q_{i} \leq {\overset{\_}{q}}_{i}},\mspace{31mu}{i \in {\mathcal{N}^{+}.}}} & \left( {2b} \right) \end{matrix}$

While (2) is equivalent to (1) for radial networks, (2) has much fewer optimization variables than (1) and in various embodiments can be more efficient to compute. Furthermore, the derived variables (p₀,

+) will be automatically computed by power flow physics once the basic variable x is computed. This motivates an iterative procedure for solving OPF: in each iteration, first update the basic variable x and then let the derived variables be automatically computed by computations based upon power flow physics.

Gradient Projection Processes

A process for achieving optimal power flow is illustrated in FIG. 7. The process 700 includes receiving 702 optimal power flow parameters at one or more nodes and/or one or more coordinators. Optimal power how can then be calculated 704 using a gradient projection process. The calculations for gradient projection will be discussed in detail further below. In various embodiments, gradient projection includes calculating derivatives and/or choosing a step size for updating optimization parameters. Although a number of processes for achieving optimal power flow are described with reference to FIG. 7 any of a variety of gradient projection processes can be utilized to solve for optimal power flow as appropriate to the requirements of specific applications in accordance with embodiments of the invention. Gradient decent processes in accordance with embodiments of the invention are described further below.

A process to solve for optimal power flow utilizing a gradient projection solution is illustrated in FIG. 8. The process 800 includes receiving 802 optimal power flow parameters. Parameters including, an iterative parameter are used to solve 804 for optimal power flow. A backwards forwards sweep can be calculated 806 to obtain power flow parameters. A backwards forwards sweep will be discussed in detail further below. Gradients are calculated 808 using, power flow parameters. Gradient calculations can be exact and/or approximations, and various ways to calculate gradients including in distributed processes will be described further below. Update parameters can be calculated 810 using a line search 810. Parameters including the iterative parameter are updated 812 using gradients and update parameters. In various embodiments, some or all of these updated parameter values can come from a coordinator. End conditions are checked 814. If an end condition 814 has not been reached, the parameters including the iterative parameter are used to once again solve 804 for optimal power flow. If an end condition 814 has been reached, optimal power flow is returned 816 and the process completes. Although a variety of processes for gradient descent are illustrated with respect to FIG. 8, any of a variety of processes to iteratively calculate optimal power flow in a power distribution network can be utilized as appropriate to the requirements of specific applications in accordance with embodiments of the invention.

The process proposed to solve the OPF problem (2) is a gradient projection process. In each iteration of the process, derivatives of the modified objective function with respect to the basic variables are estimated, and then used as the negative direction of updating the basic variables. Line search is implemented to determine the step sizes of basic variable updates so as to ensure the convergence of the process.

Exact Derivatives

One of the reasons that the gradient projection process proposed can be adept is that the derivatives can be estimated efficiently. First a process for exactly computing derivatives will be illustrated. A process for estimating derivatives will be described further below.

As noted above, gradients computed during OPF calculations can be computed exactly. Since the network is radial, (1b)-(1e) imply

${{\partial_{x}P_{ij}} = {{r_{ij}{\partial_{x}\ell_{ij}}} - {\partial_{x}p_{j}} + {\sum\limits_{k:\mspace{14mu}{j\rightarrow k}}\;{\partial_{x}P_{jk}}}}},{{\partial_{x}Q_{ij}} = {{x_{ij}{\partial_{x}\ell_{ij}}} - {\partial_{x}q_{j}} + {\sum\limits_{k:\mspace{14mu}{j\rightarrow k}}\;{\partial_{x}Q_{jk}}}}},{{\partial_{x}v_{j}} = {{\partial_{x}v_{i}} - {2\left( {{r_{ij}{\partial_{x}P_{ij}}} + {x_{ij}{\partial_{x}Q_{ij}}}} \right)} + {{z_{ij}}^{2}{\partial_{x}\ell_{ij}}}}},{{\partial_{x}\ell_{ij}} = {{\frac{2\; P_{ij}}{v_{i}}{\partial_{x}P_{ij}}} + {\frac{2\; Q_{ij}}{v_{i}}{\partial_{x}Q_{ij}}} - {\frac{\ell_{ij}}{v_{i}}{\partial_{x}v_{i}}}}}$ for i→j. I can denote the 2×2 identity matrix and ∂_(x)l_(ij) can be removed to obtain

${{\left\lbrack {I - {\frac{2}{v_{i}}\begin{pmatrix} r_{ij} \\ x_{ij} \end{pmatrix}\begin{pmatrix} P_{ij} & Q_{ij} \end{pmatrix}}} \right\rbrack\begin{pmatrix} {\partial_{x}P_{ij}} \\ {\partial_{x}Q_{ij}} \end{pmatrix}} = {{\sum\limits_{k\;:{j\rightarrow k}}\;\begin{pmatrix} {\partial_{x}P_{jk}} \\ {\partial_{x}Q_{jk}} \end{pmatrix}} - \begin{pmatrix} {\partial_{x}p_{j}} \\ {\partial_{x}q_{j}} \end{pmatrix} - {\begin{pmatrix} r_{ij} \\ x_{ij} \end{pmatrix}\frac{\ell_{ij}}{v_{i}}{\partial_{x}v_{i}}}}},{{\partial_{x}v_{j}} = {{\left( {1 - {{z_{ij}}^{2}\frac{\ell_{ij}}{v_{i}}}} \right){\partial_{x}v_{i}}} - {2\left( {r_{ij} - {{z_{ij}}^{2}\frac{P_{ij}}{v_{i}}}} \right){\partial_{x}P_{ij}}} - {2\left( {x_{ij} - {{z_{ij}}^{2}\frac{Q_{ij}}{v_{i}}}} \right){\partial_{x}Q_{ij}}}}}$ for i→j. Pseudocode that can be utilized to solve for optimal power flow utilizing a gradient calculation process to perform an exact derivative calculation in accordance with many embodiments of the invention is illustrated in FIG. 9. Hence, the gradients ∂_(x)(P, Q, ν, p₀, q₀) can be computed by a process similar to process 1 as illustrated in FIG. 9. Approximated Derivatives

To avoid the iterative procedure used in process 1 described above and improve computational efficiency, the gradients can be estimated as follows. Note that since the current terms in (1b)-(1d) are much smaller than the other terms in practice, (P, Q, ν) can be estimated by ({circumflex over (P)}, {circumflex over (Q)}, {circumflex over (ν)}) defined as

${{{\sum\limits_{i:{i\rightarrow j}}\;{\hat{P}}_{ij}} + p_{j}} = {\sum\limits_{k\;:{j\rightarrow k}}\;{\hat{P}}_{jk}}},{{j \in \mathcal{N}};}$ ${{{\sum\limits_{i:{i\rightarrow j}}\;{\hat{Q}}_{ij}} + q_{j}} = {\sum\limits_{k\;:{j\rightarrow k}}\;{\hat{Q}}_{jk}}},{{j \in \mathcal{N}};}$ v̂_(i) − v̂_(j) = 2(r_(ij)P̂_(ij) + x_(ij)Q̂_(ij)), i → j.

Note that the equations are linear and in many embodiments straightforward to obtain

${{\partial_{x}{\hat{P}}_{ij}} = {{\sum\limits_{k\;:{j\rightarrow k}}\;{\partial_{x}{\hat{P}}_{jk}}} - {\partial_{x}p_{j}}}},{\left. i\rightarrow j \right.;}$ ${{\partial_{x}{\hat{Q}}_{ij}} = {{\sum\limits_{k\;:{j\rightarrow k}}\;{\partial_{x}{\hat{Q}}_{jk}}} - {\partial_{x}q_{j}}}},{\left. i\rightarrow j \right.;}$ ∂_(x)v̂_(j) = ∂_(x)v̂_(i) − 2r_(ij)∂_(x)P̂_(ij) − 2x_(ij)∂_(x)Q̂_(ij), i → j.

In several embodiments i

j can denote the joint of node (bus) i and j for i, j∈

, and R_(i) can denote the total resistance from node (bus) 0 to node (bus) i for i∈

. Then ∂_(x)({circumflex over (P)}, {circumflex over (Q)}, {circumflex over (ν)}) has the following closed-form expression: ∂_(p) _(k) {circumflex over (P)} _(ij)=−

, ∂_(q) _(k) {circumflex over (P)} _(ij)=0, k=1,2, . . . n, i→j;  (3a) ∂_(p) _(k) {circumflex over (Q)} _(ij)=0, ∂_(q) _(k) {circumflex over (Q)} _(ij) =−

, k=1,2, . . . n,i→j;  (3b) ∂_(p) _(k) ν_(i)=2

, ∂_(q) _(k) ν_(i)=2

, k=1,2, . . . n, i→j;  (3c) ∂_(x)(P, Q, ν) can be approximated by ∂_(x)({circumflex over (P)}, {circumflex over (Q)}, {circumflex over (ν)}), i.e., ∂_(x)(P,Q,ν)≈∂_(x)({circumflex over (P)},{circumflex over (Q)},{circumflex over (ν)}). Note that ∂_(x)({circumflex over (P)}, {circumflex over (Q)}, {circumflex over (ν)}) is a constant that does not depend on (P, Q, ν), and therefore can be computed once ahead of time.

Finally, ∂_(x)(p₀, q₀) can be approximated as follows, (1b) can be summed up for j∈

to obtain

${\sum\limits_{i = 0}^{n}\; p_{i}} = {{\sum\limits_{i\rightarrow j}\;{r_{ij}\ell_{ij}}} = {\sum\limits_{i\rightarrow j}\;{r_{ij}{\frac{P_{ij}^{2} + Q_{ij}^{2}}{v_{i}}.}}}}$ Hence,

$\begin{matrix} {{\partial_{p_{i}}p_{0}} = {{- 1} + {\sum\limits_{k\rightarrow l}\;{r_{kl}{\partial_{p_{i}}\left( \frac{P_{kl}^{2} + Q_{kl}^{2}}{v_{k}} \right)}}}}} \\ {= {{- 1} + {\sum\limits_{k\rightarrow l}\;{r_{kl}\left( {{\frac{2P_{kl}}{v_{k}}{\partial_{p_{i}}P_{kl}}} + {\frac{2Q_{kl}}{v_{k}}{\partial_{p_{i}}Q_{kl}}} - {\frac{\ell_{kl}}{v_{k}}{\partial_{p_{i}}v_{k}}}} \right)}}}} \\ {\approx {{- 1} + {\sum\limits_{k\rightarrow l}\;{r_{kl}\left( {{\frac{2P_{kl}}{v_{k}}{\partial_{p_{i}}{\hat{P}}_{kl}}} + {\frac{2Q_{kl}}{v_{k}}{\partial_{p_{i}}{\hat{Q}}_{kl}}} - {\frac{\ell_{kl}}{v_{k}}{\partial_{p_{i}}{\hat{v}}_{k}}}} \right)}}}} \end{matrix}$ $\begin{matrix} {{\partial_{q_{i}}p_{0}} = {\sum\limits_{k\rightarrow l}\;{r_{kl}{\partial_{q_{i}}\left( \frac{P_{kl}^{2} + Q_{kl}^{2}}{v_{k}} \right)}}}} \\ {= {\sum\limits_{k\rightarrow l}\;{r_{kl}\left( {{\frac{2P_{kl}}{v_{k}}{\partial_{q_{i}}P_{kl}}} + {\frac{2Q_{kl}}{v_{k}}{\partial_{q_{i}}Q_{kl}}} - {\frac{\ell_{kl}}{v_{k}}{\partial_{q_{i}}v_{k}}}} \right)}}} \\ {\approx {\sum\limits_{k\rightarrow l}\;{r_{kl}\left( {{\frac{2P_{kl}}{v_{k}}{\partial_{q_{i}}{\hat{P}}_{kl}}} + {\frac{2Q_{kl}}{v_{k}}{\partial_{q_{i}}{\hat{Q}}_{kl}}} - {\frac{\ell_{kl}}{v_{k}}{\partial_{q_{i}}{\hat{v}}_{k}}}} \right)}}} \end{matrix}$ for  i = 1, 2, …  , n. Modified Objective Functions

To enable a distributed process, i.e., each node (bus) i updates its own (p_(i), q_(i)) locally, the constraints of OFF can be decoupled, i.e., constraints of the form (2b) are easy to handle while constraints of the form (2a) should be avoided.

To avoid coupled constraints (2a), a log-barrier function can be added to the objective as

${L\left( {x;\mu} \right)} = {{a_{0}{p_{0}^{2}(x)}} + {b_{0}{p_{0}(x)}} + {\sum\limits_{i = 1}^{n}\;\left( {{a_{i}p_{i}^{2}} + {b_{i}p_{i}}} \right)} - {\underset{\_}{\mu}{\sum\limits_{i = 1}^{n}\;{\ln\left( {{\overset{\_}{v}}_{i} - {\underset{\_}{v}}_{i}} \right)}}} - {\overset{\_}{\mu}{\sum\limits_{i = 1}^{n}\;{\ln\left( {{\overset{\_}{v}}_{i} - {v_{i}(x)}} \right)}}}}$

where μ=(μ, μ)>0 component wise. Note that ν _(i)≤ν_(i)(x)≤ν _(i) for i∈

⁺ is enforced since

${{\lim\limits_{t \downarrow {\underset{\_}{v}}_{i}}{{- \underset{\_}{\mu}}{\ln\left( {t - {\underset{\_}{v}}_{i}} \right)}}} = \infty},{{\lim\limits_{t \uparrow {\overset{\_}{v}}_{i}}{{- \overset{\_}{\mu}}{\ln\left( {{\overset{\_}{v}}_{i} - t} \right)}}} = \infty},{i \in \mathcal{N}^{+}}$ and OPF seeks to minimize L. Besides,

${\lim\limits_{\mu \downarrow 0}{L\left( {x;\mu} \right)}} = {{a_{0}{p_{0}^{2}(x)}} + {b_{0}{p_{0}(x)}} + {\sum\limits_{i = 1}^{n}\;\left( {{a_{i}p_{i}^{2}} + {b_{i}p_{i}}} \right)}}$ and therefore solving OPF is similar to minimize L(x;μ) with small enough μ.

To summarize, in various embodiments the distributed process can solve OPF(μ):min L(x;μ) over p ₁ , . . . , p _(n) ,q ₁ , . . . , q _(n); s.t. p _(i) ≤p _(i) ≤p _(i) ,q _(i) ≤q _(i) ≤q _(i) , i=1, 2, . . . ,n for a decreasing sequence of μ. OPF(μ) will be solved for a specific μ below. Gradient Projection

In many embodiments, there are two key steps in a gradient projection process: 1) compute or approximate) the gradients; and 2) choose a step size to update the optimization variables.

The gradients can be approximated using (3). In particular,

$\begin{matrix} {\begin{matrix} {{\partial_{p_{i}}L} = {{\left( {{2a_{0}p_{0}} + b_{0}} \right){\partial_{p_{i}}p_{0}}} + \left( {{2a_{i}p_{i}} + b_{i}} \right) - {\sum\limits_{k = 1}^{n}\;\left\lbrack {\frac{\underset{\_}{\mu}}{v_{k} - {\underset{\_}{v}}_{k}} + \frac{\overset{\_}{\mu}}{v_{k} - {\overset{\_}{v}}_{k}}} \right\rbrack}}} \\ {\partial_{p_{i}}v_{k}} \\ {= {\left( {{2a_{0}p_{0}} + b_{0}} \right)\left\lbrack {{- 1} + {\sum\limits_{k\rightarrow l}\;{r_{kl}\left( {{\frac{2P_{kl}}{v_{k}}{\partial_{p_{i}}P_{kl}}} + {\frac{2Q_{kl}}{v_{k}}{\partial_{p_{i}}Q_{kl}}} -} \right.}}} \right.}} \\ {\left. \left. {\frac{\ell_{kl}}{v_{k}}{\partial_{p_{i}}v_{k}}} \right) \right\rbrack +} \\ {\left( {{2a_{i}p_{i}} + b_{i}} \right) - {\sum\limits_{k = 1}^{n}\;{\left\lbrack {\frac{\underset{\_}{\mu}}{v_{k} - {\underset{\_}{v}}_{k}} + \frac{\overset{\_}{\mu}}{v_{k} - {\overset{\_}{v}}_{k}}} \right\rbrack{\partial_{p_{i}}v_{k}}}}} \\ {\approx {\left( {{2a_{0}p_{0}} + b_{0}} \right)\left\lbrack {{- 1} + {\sum\limits_{k\rightarrow l}\;{r_{kl}\left( {{\frac{2P_{kl}}{v_{k}}{\partial_{p_{i}}{\hat{P}}_{kl}}} + {\frac{2Q_{kl}}{v_{k}}{\partial_{p_{i}}{\hat{Q}}_{kl}}} -} \right.}}} \right.}} \\ {\left. \left. {\frac{\ell_{kl}}{v_{k}}{\partial_{p_{i}}{\hat{v}}_{k}}} \right) \right\rbrack + \left( {{2a_{i}p_{i}} + b_{i}} \right) - {\sum\limits_{k = 1}^{n}\;{\left\lbrack {\frac{\underset{\_}{\mu}}{v_{k} - {\underset{\_}{v}}_{k}} + \frac{\overset{\_}{\mu}}{v_{k} - {\overset{\_}{v}}_{k}}} \right\rbrack{\partial_{p_{i}}{\hat{v}}_{k}}}}} \\ {= {{- {\left( {{2a_{0}p_{0}} + b_{0}} \right)\left\lbrack {1 + {\sum\limits_{k\rightarrow l}\;{r_{kl}\left( {{\frac{2P_{kl}}{v_{k}}{\mathbb{l}}_{l \in \mathcal{P}_{i}}} + {\frac{2\ell_{kl}}{v_{k}}R_{i\bigwedge k}}} \right)}}} \right\rbrack}} +}} \\ {\left( {{2a_{i}p_{i}} + b_{i}} \right) - {\sum\limits_{k = 1}^{n}\;{\left\lbrack {\frac{\underset{\_}{\mu}}{v_{k} - {\underset{\_}{v}}_{k}} + \frac{\overset{\_}{\mu}}{v_{k} - {\overset{\_}{v}}_{k}}} \right\rbrack 2R_{i\bigwedge k}}}} \end{matrix}\mspace{20mu}{{{{for}\mspace{14mu} i} = 1},2,\ldots\mspace{14mu},{n.\mspace{20mu}{Similarly}},}} & (4) \\ {{{{\partial_{q_{i}}L} \approx {{{- \left( {{2a_{0}p_{0}} + b_{0}} \right)}{\sum\limits_{k\rightarrow l}\;{r_{kl}\left( {{\frac{2Q_{kl}}{v_{k}}{\mathbb{l}}_{l \in \mathcal{P}_{i}}} + {\frac{2\ell_{kl}}{v_{k}}X_{i\bigwedge k}}} \right)}}} - {\sum\limits_{k = 1}^{n}\;{\left\lbrack {\frac{\underset{\_}{\mu}}{v_{k} - {\underset{\_}{v}}_{k}} + \frac{\overset{\_}{\mu}}{v_{k} - {\overset{\_}{v}}_{k}}} \right\rbrack 2X_{i\bigwedge k}}}}}\mspace{20mu}{{{{for}\mspace{14mu} i} = 1},2,\ldots\mspace{14mu},{n.}}}\mspace{20mu}} & (5) \end{matrix}$

The step size can be determined by doing a line search along the direction of −∂_((p,q))L, i.e., back off the step size until the modified Objective function can be well-approximated by its linearization around the current solution point. Three parameters α (determine the back off speed, set to 0.5 in the current implementation), β (criteria for the linearization of the objective to be accurate enough, set to 0.5 in the current implementation), and ε (criteria for the progress to be too slow, set to 1e-4 in the current implementation) are needed in the line search step. Pseudocode that can be utilized to implement line search processes utilized for solving for optimal power flow by node controllers to achieve gradient descent in accordance with many embodiments of the invention is illustrated in process 2 in FIG. 10.

The introduction of ε in the “if” branch in Step 7) of process 2 illustrated in FIG. 10 is to stop the iterations when progress gets too slow, i.e., ∥Δp∥+∥Δq∥≤ε. When this happens, stopFlag is set to 1 and iterations are stopped. Otherwise, a large number of iterations will run without updating (p,q) significantly.

With the “if” branch in Step 7) of process 2 illustrated in FIG. 10, it is possible that L(p′,q′)>L(p,q). In this case, (p′,q′) is set to (p,q) to ensure that new point (p′,q′) does not have a larger objective value than (p,q).

In many embodiments, a point (p,q) is a local optimum for minimizing L if

∂_(p) _(i) L,{tilde over (p)} _(i) −p _(i)

≥0, ∀{tilde over (p)} _(i)∈( p _(i) ,p _(i)), ∀i∈

⁺;

∂_(q) _(i) L,{tilde over (q)} _(i) −q _(i)

≥0, ∀{tilde over (q)} _(i)∈( q _(i) , q _(i)), ∀i∈

⁺.

It can be proven that if (p,q)=(p′,q′), then (p,q) is a local optimum. Additionally, it can be proven that if ε=0, then the input (p,q) and output (p′,q′) of process 2 satisfy L(p′,q′)≤L(p,q). if and only if (p′,q′)=(p,q). These imply that L(p′,q′)<L(p,q) unless (p,q) is a local optimum, in which case (p′,q′)=(p,q). Distributed Gradient Projection Processes

Pseudocode that can be utilized to implement distributed gradient projection processes utilized to solve for optimal power flow in accordance with various embodiments of the invention is illustrated in FIG. 11. The distributed gradient projection process is summarized in process 3 illustrated in FIG. 11, which solves OPF(μ) with different values of μ. In particular, μ₁, μ₂, . . . , μ_(K) can denote a sequence of μ that approaches 0 and x=(p,q). Given a feasible initial point x⁽⁰⁾, process 3 solves OPF(μ₁) with initial point x⁽⁰⁾ to obtain x⁽¹⁾, then solves OPF(μ₂) with initial point x⁽¹⁾ to obtain x⁽²⁾, . . . , and finally solves OPF(μ_(K)) with initial point x^((K-1)) to obtain the final output solution x^((K)).

To solve each OPF(μ), process 3 repeatedly calculates the gradient ∂_(x)L(x;μ) and does a line search along the direction of −∂_(x)L to update x, until stopFlag=1, which indicates numerically no further improvements can be made. It can be proven that a local minimum of L(x;μ) is obtained in each inner loop of process 3.

Distributed Implementation

An important advantage of process 3 is that it can be implemented in a distributed way. The infrastructure required to implement process 3 in a distributed way is described as follows. (1) There is a node controller (agent) at each branch node (bus) i∈

⁺, and that there is a centralized coordinator at the substation node (bus) 0. (2) Each node controller (agent) i has access to its local power injection (p_(i),q_(i)), local power flow (P_(ij),Q_(ij)), and local voltage ν_(i). It can directly communicate with its neighbors, i.e., node controller (agent) i can communicate with node controller (agent) j if and only if i˜j. (3) The centralized coordinator has access to the substation power injection (p₀,q₀) and can communicate with all node controllers (agents) in the network.

In various embodiments, to implement process 3 in a distributed way, only nodes (buses) i whose power injections (p_(i), q_(i)) can be controlled need to have node controllers (agents). For example, if p _(i)=p _(i) and q _(i)=q _(i), then node (bus) i does not need to have a node controller (agent).

There are two key components in the distributed implementation of process 3: 1) compute gradient ∂_((p,q))L(p*,q*;μ) in a distributed way; and 2) run line search (process 2 in a distributed way.

Distributed Gradient Computation

The approximated gradients (see equations (4)-(5)) can be computed in a backward forward sweep fashion as described below.

In several embodiments. Down(i):={j∈

|i∈

_(i)} can denote the downstream nodes (buses) of node (bus) i∈

. Define

${c_{i} = {\sum\limits_{k = 1}^{n}\;{2{R_{i\bigwedge k}\left( {\frac{\underset{\_}{\mu}}{v_{k} - {\underset{\_}{v}}_{k}} + \frac{\overset{\_}{\mu}}{v_{k} - {\overset{\_}{v}}_{k}}} \right)}}}},{{i \in \mathcal{N}};}$ ${d_{i} = {\sum\limits_{k = 1}^{n}\;{2{X_{i\bigwedge k}\left( {\frac{\underset{\_}{\mu}}{v_{k} - {\underset{\_}{v}}_{k}} + \frac{\overset{\_}{\mu}}{v_{k} - {\overset{\_}{v}}_{k}}} \right)}}}},{{i \in \mathcal{N}};}$ ${e_{i} = {\sum\limits_{k\rightarrow l}\;{r_{kl}\left( {{\frac{2P_{kl}}{v_{k}}{\mathbb{l}}_{l \in \mathcal{P}_{i}}} + {\frac{\ell_{kl}}{v_{k}}2R_{i\bigwedge k}}} \right)}}},{{i \in \mathcal{N}};}$ ${f_{i} = {\sum\limits_{k\rightarrow l}\;{r_{kl}\left( {{\frac{2Q_{kl}}{v_{k}}{\mathbb{l}}_{l \in \mathcal{P}_{i}}} + {\frac{\ell_{kl}}{v_{k}}2X_{i\bigwedge k}}} \right)}}},{i \in {\mathcal{N}.}}$ Then the approximated gradients (4)-(5) can be simplified as ∂_(p) _(i) L=−(2a ₀ p ₀ +b ₀)(1+e _(i))+(2a _(i) p _(i) +b _(i))−c _(i) , i∈

⁺;  (6a) ∂_(q) _(i) L=−(2a ₀ p ₀ +b ₀)f _(i) −d _(i) , i∈

⁺.  (6b) The centralized coordinator has access to p₀ can broadcast 2α₀p₀+b₀ to all branch nodes (buses). Each node controller (agent) i knows p_(i) and can easily compute 2α_(i)p_(i)+b_(i). Hence, the main challenge is to compute c_(i), d_(i), e_(i), f_(i) in a distributed manner.

The quantities c_(i), d_(i), e_(i), f_(i) can be computed recursively. To derive the recursive equations, note that for each i→j, one has R _(i∧k) −R _(j∧k) =−r _(ij)

_(k∈Down(j)) and therefore

$\begin{matrix} {{c_{i} - c_{j}} = {\sum\limits_{k = 1}^{n}\;{2\left( {R_{i\bigwedge k} - R_{j\bigwedge k}} \right)\left( {\frac{\underset{\_}{\mu}}{v_{k} - {\underset{\_}{v}}_{k}} + \frac{\overset{\_}{\mu}}{v_{k} - {\overset{\_}{v}}_{k}}} \right)}}} \\ {= {- {\sum\limits_{k = 1}^{n}\;{2r_{ij}{{\mathbb{l}}_{k \in \;{{Down}{(j)}}}\left( {\frac{\underset{\_}{\mu}}{v_{k} - {\underset{\_}{v}}_{k}} + \frac{\overset{\_}{\mu}}{v_{k} - {\overset{\_}{v}}_{k}}} \right)}}}}} \\ {= {{- 2}r_{ij}{\sum\limits_{k \in {{Down}{(j)}}}\;{\left( {\frac{\underset{\_}{\mu}}{v_{k} - {\underset{\_}{v}}_{k}} + \frac{\overset{\_}{\mu}}{v_{k} - {\overset{\_}{v}}_{k}}} \right).}}}} \end{matrix}$

Similarly,

${d_{i} - d_{j}} = {{- 2}x_{ij}{\sum\limits_{k \in {{Down}\;{(j)}}}\;{\left( {\frac{\underset{\_}{\mu}}{v_{k} - {\underset{\_}{v}}_{k}} + \frac{\overset{\_}{\mu}}{v_{k} - {\overset{\_}{v}}_{k}}} \right).}}}$

Besides,

−

=

and therefore

$\begin{matrix} {{e_{i} - e_{j}} = {\sum\limits_{k\rightarrow l}\;{r_{kl}\left\lbrack {{\frac{2P_{kl}}{v_{k}}\left( {{\mathbb{l}}_{l \in \mathcal{P}_{i}} - {\mathbb{l}}_{l \in \mathcal{P}_{j}}} \right)} + {\frac{\ell_{kl}}{v_{k}}2\left( {R_{i\bigwedge k} - R_{j\bigwedge k}} \right)}} \right\rbrack}}} \\ {= {- {\sum\limits_{k\rightarrow l}\;{r_{kl}\left\lbrack {{\frac{2P_{kl}}{v_{k}}{\mathbb{l}}_{l = j}} + {\frac{\ell_{kl}}{v_{k}}2r_{ij}{\mathbb{l}}_{k \in {{Down}{(j)}}}}} \right\rbrack}}}} \\ {= {{- \frac{2r_{ij}P_{ij}}{v_{i}}} - {r_{ij}{\sum\limits_{k \in {{Down}{(j)}}}\;{\frac{2r_{kl}\ell_{kl}}{v_{k}}.}}}}} \end{matrix}$

Similarly,

${f_{i} - f_{j}} = {{- \frac{2r_{ij}Q_{ij}}{v_{i}}} - {x_{ij}{\sum\limits_{k \in {{Down}{(j)}}}\;{\frac{2r_{kl}\ell_{kl}}{v_{k}}.}}}}$ Hence, g_(i) and h_(i) can be defined as:

${g_{i} = {\sum\limits_{k \in {{Down}\mspace{11mu}{(i)}}}\;\left( {\frac{\underset{\_}{\mu}}{v_{k} - {\underset{\_}{v}}_{k}} + \frac{\overset{\_}{\mu}}{v_{k} - {\overset{\_}{v}}_{k}}} \right)}},{{i \in \mathcal{N}^{+}};}$ ${h_{i} = {\sum\limits_{k \in {{Down}\mspace{11mu}{(i)}}}\;\frac{2r_{kl}\ell_{kl}}{v_{k}}}},{i \in \mathcal{N}^{+}},$ then c_(i), d_(i), e_(i), f_(i) can be computed recursively as

$\begin{matrix} {{c_{j} = {c_{i} + {2r_{ij}g_{j}}}},{\left. i\rightarrow j \right.;}} & \left( {7a} \right) \\ {{d_{j} = {d_{i} + {2x_{ij}g_{j}}}},{\left. i\rightarrow j \right.;}} & \left( {7b} \right) \\ {{e_{j} = {e_{i} + \frac{2r_{ij}P_{ij}}{v_{i}} + {r_{ij}h_{j}}}},{\left. i\rightarrow j \right.;}} & \left( {7c} \right) \\ {{f_{j} = {f_{i} + \frac{2r_{ij}Q_{ij}}{v_{i}} + {x_{ij}h_{j}}}},\left. i\rightarrow{j.} \right.} & \left( {7d} \right) \end{matrix}$ Distributed Gradient Projection Processes

A distributed gradient process utilized in solving for optimal power flow to implement distributed gradient projection is illustrated in FIG. 13. The process 1300 includes performing 1302 a backwards sweep to calculate parameters utilized in OPF calculations. Additionally, a forwards sweep is performed to calculate parameters. Various distributed backwards and forwards sweep processes are described in detail below with reference to FIGS. 14A and 14B. Gradients are calculated 1306. Gradients can be calculated with exact derivative calculations and/or with approximations as described above. Pseudocode to implement a distributed gradient projection process similar to process 1300 is described further below in FIG. 15. Although a variety of gradient projection processes are described above with respect to FIG. 13, any of a variety of distributed gradient projection processes to solve for optimal power flow in a power distribution network can be utilized as appropriate to the requirements of specific applications in accordance with embodiments of the invention.

A process to implement a distributed backwards sweep utilized in a gradient projection process to solve for optimal power flow is illustrated in FIG. 14A. The process 1400 includes a node receiving 1402 parameters from downstream neighbor nodes. The node calculates 1404 updated parameters with parameters received from downstream neighbor nodes. Updated parameters are sent 1406 to upstream neighbor nodes, in some embodiments, parameters can include (but are not limited to) voltage, power injection, current, resistance, and/or impedance. In many embodiments, backwards sweep begins at the leaf nodes and completes at the root node, but it should be readily appreciated that it may be performed over a subsection of nodes in a power distribution network as specific applications require.

A process to implement a distributed forwards sweep utilized in a gradient projection process to solve for optimal power flow is illustrated in FIG. 14B. The process 1450 includes a node receiving 1452 parameters from upstream neighbor nodes. The node calculates 1454 updated parameters using parameters from upstream neighbor nodes. Updated parameters are sent 1456 to downstream neighbor nodes, in some embodiments, parameters can include (but are not limited to) voltage, power injection, current, resistance, and/or impedance. In various embodiments, forwards sweep generally starts after a backwards sweep process is finished. In many embodiments, the forwards sweep begins at the root node and completes at the leaf nodes. However, it should be readily appreciated that it may be performed over a subsection of nodes in a power distribution network as specific applications require.

Although a variety of processes for performing backwards and forwards sweeps have been described above with respect to FIGS. 14A and 14B, any of a variety of distributed processes to propagate information throughout nodes in a power distribution network may be utilized as appropriate to the requirements of specific applications in accordance with embodiments of the invention.

Pseudocode that can be utilized to implement distributed gradient projection processes utilized in solving for optimal power flow executed by node controllers is illustrated in FIG. 15. The illustrated process 4 is similar to those outlined above with respect to FIG. 13. To summarize, the distributed gradient projection process is given in process 4, where

:={i∈

⁺ |∃j such that i→j} denotes the set of leaf nodes (buses). It includes three main steps:

-   -   S1 Backward sweep to compute g, h: for each node controller         (agent) i∈         ⁺, when all its downstream neighbors j have computed g_(j),         h_(j), computes g_(i), h_(i), according to

$\begin{matrix} {{{e_{i} = {\frac{\underset{\_}{\mu}}{v_{i} - {\underset{\_}{v}}_{i}} + \frac{\overset{\_}{\mu}}{v_{i} - {\overset{\_}{v}}_{i}} + {\sum\limits_{j\;:\;{i\rightarrow j}}\; e_{j}}}};}{{f_{i} = {\sum\limits_{j\;:\;{i\rightarrow j}}\;\left( {\frac{2r_{ij}\ell_{ij}}{v_{i}} + f_{j}} \right)}},}} & (8) \end{matrix}$

-   -   S2 Forward sweep to compute c, d, e, f: for each node controller         (agent) h∈         ⁺, when all its upstream neighbors i have computed c_(i), d_(i),         e_(i)+2r_(ij)P_(ij)/ν_(i), f_(i)+2r_(ij)Q_(ij)/ν_(i), computes         c_(j), d_(j), e_(j), f_(j) as in (7).     -   S3 Compute ∂_((p,q))L: each node controller (agent) i∈         ⁺ computes ∂_(p) _(i) L and ∂_(q) _(i) L according to (6).         Distributed Gradient Descent Processes

A distributed gradient decent process similar to process 3 in FIG. 11 can be implemented in a distributed manner by calling a distributed implementation of the inner loop for a sequence μ₁, μ₂, . . . , μ_(K)) of decreasing μ. In various embodiments, a node controller and a coordinator controller can act in concert to achieve optimal power flow in a distributed manner utilizing a gradient decent process, which will be described further below with respect to the processes conceptually illustrated in FIG. 16 and FIG. 17. A distributed gradient decent process can also include a distributed line search process similar to line search process 2 illustrated in FIG. 10.

A node controller implementing a distributed gradient descent process utilized in solving for optimal power flow is illustrated in FIG. 16. The process 1600 includes a node receiving 1602 an iterative parameter from the coordinator. In many embodiments, this iterative parameter can be a value from a decreasing sequence that approaches 0. The node calculates 1604 the old power injection parameters and sends them to the coordinator. The gradients are calculated 1608. A step size is received 1610 from the coordinator. New power injection parameters are calculated 1612 using information including gradients and step size, and the new power injection parameters are sent to the coordinator. The node checks if the voltage parameters are within a specified range 1612. If the voltage parameters are not within a specified range 1612, a signal is sent 1616 to the coordinator for a new step size. A new step size is received 1610 and the process repeats. If the voltage parameter is within a specified range 1612, end conditions 1618 are checked. If end conditions 1618 have not been met, the values of old power injection parameters are updated 1620 such that they now equal the values of the new power injection parameters. These parameters are used to calculate 1604 remaining old power injection parameters to be sent to the coordinator and the process repeats. If the end conditions 1618 have been met old or new power injection parameters are returned 1622 based on the end conditions and the process completes. It should readily be apparent that once complete, process 1600 will repeat again for additional iterative parameters until the system has (but is not limited to) solved for a local optimum of the optimal power flow problem, in several embodiments, a node controller similar to node controller 400 illustrated in FIG. 4 can implement this process.

A a distributed gradient descent process utilized in solving for optimal power flow that can be implemented by a coordinator controller is illustrated in FIG. 17. The process 1700 includes broadcasting 1702 an iterative parameter to one or more nodes in the power distribution network. Old power injection parameters are received 1704 from one or more nodes. An objective value parameter is calculated 1706. A step size is initialized 1708 and broadcast 1710 to one or more nodes. New power injection parameters are received 1712 from one or more nodes. If a voltage parameter out of range signal 1714 is received from one or more nodes, the step size is modified 1716, the modified step size is broadcast 1710 and the process repeats. If a voltage parameter out of range signal 1714 is received from one or more nodes, termination parameters are calculated 1718. End conditions 1720 are checked. If end conditions 1720 are not met, a signal is broadcast 1722 to one or more nodes to update power injection parameters. If end conditions 1720 are met, end conditions are broadcast 1720 and the process completes. It should readily be apparent that once complete, process 1700 will repeat again for additional iterative parameters until the system has (but is not limited to) solved for a local optimum of the optimal power flow problem. In various embodiments, a coordinator controller similar to coordinator controller 300 illustrated in FIG. 3 can implement this process.

It should be appreciated that node controller process 1600 and coordinator process 1700 can run concurrently to solve for optimal power flow. Distributed gradient descent processes will be discussed further in detail below. Although a variety of distributed gradient descent processes have been described with respect to FIG. 16 and FIG. 17, a variety of processes can be utilized to implement distributed gradient descent on nodes and coordinator controllers in a power distribution network as appropriate to the requirements of specific applications in accordance with embodiments of the invention. Pseudocode that can be utilized to implement distributed gradient descent processes utilized in solving for optimal power flow is illustrated in FIG. 18. The illustrated process 5 is similar to those outlined above with respect to FIG. 16 and FIG. 17.

Distributed Line Searches

Line search processes similar to the line search process 2 illustrated in FIG. 10 can also be implemented in a distributed manner, which can give rise to a distributed implementation of the inner loop of process 3 illustrated in FIG. 11.

In process 5 illustrated in FIG. 18, each node controller (agent) i∈

⁺ keeps track of its last approved power injection (p_(i) ^(old), q_(i) ^(old)) and proposes tentative power injections (p_(i) ^(new), q_(i) ^(new)) to the coordinator; the coordinator decides whether to approve the tentative power injections.

Tentative power injection (p^(new), q^(new)) is computed by gradient projection

$\left. p_{i}^{new}\leftarrow{\prod\limits_{\lbrack{{\underset{\_}{p}}_{i},{\overset{\_}{p}}_{i}}\rbrack}\;\left( {p_{i}^{old} - {\eta{\partial_{p_{i}}L}}} \right)} \right.;$ $\left. q_{i}^{new}\leftarrow{\prod\limits_{\lbrack{{\underset{\_}{q}}_{i},{\overset{\_}{q}}_{i}}\rbrack}\;\left( {q_{i}^{old} - {\eta{\partial_{q_{i}}L}}} \right)} \right.;$ where the gradient is computed as in process 5 and the step size η is controlled by the coordinator. The coordinator initializes η=1 and reduces η by a fraction of 1−α until voltage constraints are satisfied, i.e., ν _(i)≤ν_(i)≤ν _(i) for i∈

⁺, and the modified objective function is well-approximated by its linearization, i.e., L^(new)<L^(thres).

The coordinator decides whether to approve the tentative power injection, i.e., set (p^(old), q^(old))←(p^(new), q^(new)), and when to terminate an inner loop, i.e., set (p′, q′). In other cases, the coordinator reduces the current to η to αη ask for the submission of new tentative power injection (p^(new), q^(new)).

The coordinator makes these decisions based on (Δs_(i), ΔL_(i)) computed by the node controllers (agents) i∈

⁺. The quantity Δs_(i) captures the update size of (p_(i), q_(i)), and ΔL_(i) is the product of gradient ∂_((p) _(i) _(, q) _(i) ₎L and power injection update. In particular, if

Δs_(i)≤ε, the coordinator decides to stop the inner loop; else if L^(new)≤L^(old)+β

L_(i), the coordinator decides to approve the tentative power injection, i.e., (p^(old), q^(old))←(p^(new), q^(new)); else the coordinator reduces the step size η by a fraction of 1−α, i.e., η←αη.

Multiphase Networks

In various embodiments, gradient projection processes can also be applied to multiphase networks. Solving for OPF for multiphase networks using distributed gradient projection processes will be discussed further below.

In several embodiments, the objective function to minimize is

${L\left( {x;\mu} \right)} = {{\sum\limits_{\phi \in \Phi_{0}}\;{a\left( {p_{0}^{\phi}(x)} \right)}^{2}} + {{bp}_{0}^{\phi}(x)} - {\sum\limits_{k = 1}^{n}\;{\sum\limits_{~{\phi \in \Phi_{k}}}\;{\left( {{\underset{\_}{\mu}{\ln\left( {v_{k}^{\phi} - {\underset{\_}{v}}_{k}} \right)}} + {\overset{\_}{\mu}{\ln\left( {{\overset{\_}{v}}_{k} - v_{k}^{\phi}} \right)}}} \right).}}}}$ Hence, to compute ∂_(x)L, it suffices to compute ∂_(x)p₀ ^(ϕ) and ∂_(x)ν_(k) ^(ϕ) for each k∈

⁺ and each ϕ∈{a, b, c}.

∂_(x)p₀ ^(ϕ) and ∂_(x)ν_(k) ^(ϕ) can be estimated for each k and each k∈

⁺ and each ϕ∈{a, b, c} using the linearized power flow equations

${{\sum\limits_{i:{i\rightarrow j}}\;\Lambda_{ij}} = {s_{j} + {{diag}\left( {{{Diag}\left( v_{j} \right)}\gamma^{\Phi_{j}}y_{j}^{H}} \right)} + {\sum\limits_{k\;:{j\rightarrow k}}\;\Lambda_{jk}^{\Phi_{j}}}}},{{j \in \mathcal{N}};}$ S_(ij) = γ^(Φ_(ij))Diag(Λ_(ij)), i → j; v_(j) = v_(i)^(Φ_(ij)) − diag(S_(ij)z_(ij)^(H) + z_(ij)S_(ij)^(H)), i → j where ${\alpha = e^{{- 2}{\pi/3}}},{\beta = \begin{bmatrix} 1 \\ \alpha \\ \alpha^{2} \end{bmatrix}},{\gamma = {{\beta\beta}^{H}.}}$

The above equations can be written in scalar format to obtain

$\begin{matrix} {{{\sum\limits_{i\;:{i\rightarrow j}}\;\Lambda_{ij}^{\phi}} = {s_{j}^{\phi} + {\sum\limits_{k\;:{j\rightarrow k}}\;\Lambda_{jk}^{\phi}} + {v_{j}^{\phi}{\sum\limits_{\varphi \in \Phi_{j}}\;{\alpha^{\phi - \varphi}{\overset{\_}{y}}_{j}^{\phi\varphi}}}}}},{j \in \mathcal{N}},{{\phi \in \Phi_{j}};}} & \left( {10a} \right) \\ {{v_{j}^{\phi} = {v_{i}^{\phi} - {\sum\limits_{\varphi \in \Phi_{j}}\;\left( {{\Lambda_{ij}^{\varphi}\alpha^{\phi - \varphi}{\overset{\_}{\overset{\_}{z}}}_{ij}^{\phi\varphi}} + {\Lambda_{ij}^{- \varphi}\alpha^{\varphi - \phi}z_{ij}^{\phi\varphi}}} \right)}}},\left. i\rightarrow j \right.,{\phi \in {\Phi_{ij}.}}} & \left( {10b} \right) \end{matrix}$

Additionally, ∂_(x)(Λ_(ij) ^(ϕ), ν_(i) ^(ϕ)) can be estimated in two rounds as follows. In the first round, the V_(j) ^(ϕ) . . . term can be ignored in (10a) to obtain ∂_(p) _(i) _(ϕ) Λ_(kl) ^(φ=)

_(ϕ=φ)

_(i∈Down(l)), ∂_(q) _(i) _(φ) Λ_(kl) ^(ϕ)=

_(ϕ=φ)

_(i∈Down(l)).

This expression can be used to obtain the estimates of ∂_(x)ν_(k) ^(ϕ) as

$\begin{matrix} {{\partial_{x}v_{k}^{\phi}} = {{\partial_{x}v_{j}^{\phi}} - {\sum\limits_{\varphi \in \Phi_{k}}\;\left( {{{\partial_{x}\Lambda_{jk}^{\varphi}}\alpha^{\phi - \varphi}{\overset{\_}{z}}_{jk}^{\phi\varphi}} + {{\partial_{x}{\overset{\_}{\Lambda}}_{jk}^{\varphi}}\alpha^{\varphi - \phi}z_{jk}^{\phi\varphi}}} \right)}}} \\ {= {- {\sum\limits_{{({i,j})} \in \mathcal{P}_{k}}\;{\sum\limits_{\varphi \in \Phi_{j}}\;\left( {{{\partial_{x}\Lambda_{ij}^{\varphi}}\alpha^{\phi - \varphi}{\overset{\_}{z}}_{ij}^{\phi\varphi}} + {{\partial_{x}{\overset{\_}{\Lambda}}_{ij}^{\varphi}}\alpha^{\varphi - \phi}z_{ij}^{\phi\varphi}}} \right)}}}} \end{matrix}$ which simplifies to

$\begin{matrix} {{{\partial_{p_{i}^{\varphi}}v_{k}^{\phi}} = {{- 2}{\sum\limits_{{({s,t})} \in \mathcal{P}_{k\bigwedge i}}\;{{Re}\left( {\alpha^{\phi - \varphi}{\overset{\_}{z}}_{st}^{\phi\varphi}} \right)}}}},} & \left( {11a} \right) \\ {{\partial_{q_{i}^{\varphi}}v_{k}^{\phi}} = {2{\sum\limits_{{({s,t})} \in \mathcal{P}_{k\bigwedge i}}\;{{Im}\left( {\alpha^{\phi - \varphi}{\overset{\_}{z}}_{st}^{\phi\varphi}} \right)}}}} & \left( {11b} \right) \end{matrix}$ for k∈

⁺, ϕ∈Φ_(k), and x=p_(i) ^(φ) or q_(i) ^(φ) for i∈

⁺ and φ∈Φ_(i). At last, we estimate ∂_(x)Λ_(kl) ^(ϕ) as

$\begin{matrix} {\begin{matrix} {{\partial_{x}\Lambda_{kl}^{\phi}} = {{\partial_{x}s_{l}^{\phi}} + {\sum\limits_{m\;:\;{l\rightarrow m}}\;{\partial_{x}\Lambda_{l\; m}^{\phi}}} + {{\partial_{x}v_{l}^{\phi}}{\sum\limits_{\varphi \in \Phi_{l}}\;{\alpha^{\phi - \varphi}{\overset{\_}{y}}_{l}^{\phi\varphi}}}}}} \\ {{= {\sum\limits_{t \in {{Down}\;{(l)}}}\;\left\lbrack {{\partial_{x}s_{t}^{\phi}} + {{\partial_{x}v_{t}^{\phi}}{\sum\limits_{\xi \in \Phi_{t}}\;{\alpha^{\phi - \xi}{\overset{\_}{y}}_{t}^{\phi\xi}}}}} \right\rbrack}},} \end{matrix}{\left. k\rightarrow l \right.,{\phi \in {\Phi_{l}.}}}} & (12) \end{matrix}$

This can be used to obtain

${{\partial_{p_{i}^{\varphi}}p_{0}^{\phi}} = {{\mathbb{l}}_{\phi = \varphi} + {\sum\limits_{t = 1}^{n}\;{{\partial_{p_{i}^{\varphi}}v_{t}^{\phi}}{{Re}\left( {\sum\limits_{\xi \in \Phi_{t}}\;{\alpha^{\phi - \xi}{\overset{\_}{y}}_{t}^{\phi\xi}}} \right)}}}}},{{\partial_{q_{i}^{\varphi}}p_{0}^{\phi}} = {\sum\limits_{t = 1}^{n}\;{\partial_{q_{i}^{\varphi}}{{Re}\left( {\sum\limits_{\xi \in \Phi_{t}}\;{\alpha^{\phi - \xi}{\overset{\_}{y}}_{t}^{\phi\xi}}} \right)}}}}$ for  ϕ ∈ Φ₀, i ∈ 𝒩⁺, and  φ ∈ Φ_(i).

Furthermore, the gradient ∂_(x)L can be estimated as follows:

$\begin{matrix} {{\partial_{p_{i}^{\varphi}}L} = {{\sum\limits_{\phi \in \Phi_{0}}\;{\left( {{2{ap}_{0}^{\phi}} + b} \right){\partial_{p_{i}^{\varphi}}p_{0}^{\phi}}}} - {\sum\limits_{k = 1}^{n}\;{\sum\limits_{\phi \in \Phi_{k}}\;{\left\lbrack {\frac{\underset{\_}{\mu}}{v_{k}^{\phi} - {\underset{\_}{v}}_{k}} - \frac{\overset{\_}{\mu}}{{\overset{\_}{v}}_{k} - v_{k}^{\phi}}} \right\rbrack{\partial_{p_{i}^{\varphi}}v_{k}^{\phi}}}}}}} \\ {= {{\sum\limits_{\phi \in \Phi_{0}}\;{\left( {{2{ap}_{0}^{\phi}} + b} \right)\left\lbrack {{\mathbb{l}}_{\phi = \varphi} + {\sum\limits_{k = 1}^{n}\;{{\partial_{p_{i}^{\varphi}}v_{k}^{\phi}}{{Re}\left( {\sum\limits_{\xi \in \Phi_{k}}\;{\alpha^{\phi - \xi}{\overset{\_}{y}}_{k}^{\phi\xi}}} \right)}}}} \right\rbrack}} -}} \\ {\sum\limits_{k = 1}^{n}\;{\sum\limits_{\phi \in \Phi_{k}}\;{\left\lbrack {\frac{\underset{\_}{\mu}}{v_{k}^{\phi} - {\underset{\_}{v}}_{k}} - \frac{\overset{\_}{\mu}}{{\overset{\_}{v}}_{k} - v_{k}^{\phi}}} \right\rbrack{\partial_{p_{i}^{\varphi}}v_{k}^{\phi}}}}} \\ {= {{2\;{ap}_{0}^{\varphi}} + b + {\sum\limits_{k = 1}^{n}\;{\sum\limits_{\phi \in \Phi_{k}}\;\left\lbrack {{\left( {{2{ap}_{0}^{\phi}} + b} \right){{Re}\left( {\sum\limits_{\xi \in \Phi_{k}}\;{\alpha^{\phi - \xi}{\overset{\_}{y}}_{k}^{\phi\xi}}} \right)}} -} \right.}}}} \\ {\left. {\frac{\underset{\_}{\mu}}{v_{k}^{\phi} - {\underset{\_}{v}}_{k}} + \frac{\overset{\_}{\mu}}{{\overset{\_}{v}}_{k} - v_{k}^{\phi}}} \right\rbrack{\partial_{p_{i}^{\varphi}}v_{k}^{\phi}}} \\ {= {{2{ap}_{0}^{\varphi}} + b - {2{\sum\limits_{k = 1}^{n}\;{\sum\limits_{\phi \in \Phi_{k}}\;\left\lbrack {{\left( {{2{ap}_{0}^{\phi}} + b} \right){{Re}\left( {\sum\limits_{\xi \in \Phi_{k}}\;{\alpha^{\phi - \xi}{\overset{\_}{y}}_{k}^{\phi\xi}}} \right)}} -} \right.}}}}} \\ {\left. {\frac{\underset{\_}{\mu}}{v_{k}^{\phi} - {\underset{\_}{v}}_{k}} + \frac{\overset{\_}{\mu}}{{\overset{\_}{v}}_{k} - v_{k}^{\phi}}} \right\rbrack{\sum\limits_{{({s,t})} \in \mathcal{P}_{k\bigwedge i}}\;{{Re}\left( {\alpha^{\phi - \varphi}{\overset{\_}{z}}_{st}^{\phi\varphi}} \right)}}} \\ {{= {{2{ap}_{0}^{\varphi}} + b - {2{\sum\limits_{{({s,t})} \in \mathcal{P}_{i}}\;{\sum\limits_{\phi \in \Phi_{t}}\;{{{Re}\left( {\alpha^{\phi - \varphi}{\overset{\_}{z}}_{st}^{\phi\varphi}} \right)}\sum\limits_{k \in {{Down}{(t)}}}}}}}}}\mspace{11mu}} \\ {\left\lbrack {{\left( {{2{ap}_{0}^{\phi}} + b} \right){{Re}\left( {\sum\limits_{\xi \in \Phi_{k}}\;{\alpha^{\phi - \xi}{\overset{\_}{y}}_{k}^{\phi\xi}}} \right)}} - \frac{\underset{\_}{\mu}}{v_{k}^{\phi} - {\underset{\_}{v}}_{k}} + \frac{\overset{\_}{\mu}}{{\overset{\_}{v}}_{k} - v_{k}^{\phi}}} \right\rbrack} \end{matrix}$ and $\begin{matrix} {{\partial_{p_{i}^{\varphi}}L} = {{\sum\limits_{\phi \in \Phi_{0}}\;{\left( {{2{ap}_{0}^{\phi}} + b} \right){\partial_{q_{i}^{\varphi}}p_{0}^{\phi}}}} - {\sum\limits_{k = 1}^{n}\;{\sum\limits_{\phi \in \Phi_{k}}\;{\left\lbrack {\frac{\underset{\_}{\mu}}{v_{k}^{\phi} - {\underset{\_}{v}}_{k}} - \frac{\overset{\_}{\mu}}{{\overset{\_}{v}}_{k} - v_{k}^{\phi}}} \right\rbrack{\partial_{q_{i}^{\varphi}}v_{k}^{\phi}}}}}}} \\ {= {{\sum\limits_{\phi \in \Phi_{0}}\;{\left( {{2{ap}_{0}^{\phi}} + b} \right){\sum\limits_{k = 1}^{n}\;{{\partial_{q_{i}^{\varphi}}v_{k}^{\phi}}{{Re}\left( {\sum\limits_{\xi \in \Phi_{k}}\;{\alpha^{\phi - \xi}{\overset{\_}{y}}_{k}^{\phi\xi}}} \right)}}}}} -}} \\ {\sum\limits_{k = 1}^{n}\;{\sum\limits_{\phi \in \Phi_{k}}\;{\left\lbrack {\frac{\underset{\_}{\mu}}{v_{k}^{\phi} - {\underset{\_}{v}}_{k}} - \frac{\overset{\_}{\mu}}{{\overset{\_}{v}}_{k} - v_{k}^{\phi}}} \right\rbrack{\partial_{q_{i}^{\varphi}}v_{k}^{\phi}}}}} \\ {= {\sum\limits_{k = 1}^{n}\;{\sum\limits_{\phi \in \Phi_{k}}\;\left\lbrack {{\left( {{2{ap}_{0}^{\phi}} + b} \right){{Re}\left( {\sum\limits_{\xi \in \Phi_{k}}\;{\alpha^{\phi - \xi}{\overset{\_}{y}}_{k}^{\phi\xi}}} \right)}} - \frac{\underset{\_}{\mu}}{v_{k}^{\phi} - {\underset{\_}{v}}_{k}} + \frac{\overset{\_}{\mu}}{{\overset{\_}{v}}_{k} - v_{k}^{\phi}}} \right\rbrack}}} \\ {\partial_{q_{i}^{\varphi}}v_{k}^{\phi}} \\ {= {2{\sum\limits_{k = 1}^{n}\;{\sum\limits_{\phi \in \Phi_{k}}\;\left\lbrack {{\left( {{2{ap}_{0}^{\phi}} + b} \right){{Re}\left( {\sum\limits_{\xi \in \Phi_{k}}\;{\alpha^{\phi - \xi}{\overset{\_}{y}}_{k}^{\phi\xi}}} \right)}} - \frac{\underset{\_}{\mu}}{v_{k}^{\phi} - {\underset{\_}{v}}_{k}} + \frac{\overset{\_}{\mu}}{{\overset{\_}{v}}_{k} - v_{k}^{\phi}}} \right\rbrack}}}} \\ {\sum\limits_{{({s,t})} \in \mathcal{P}_{k\bigwedge i}}\;{{Im}\left( {\alpha^{\phi - \varphi}{\overset{\_}{z}}_{st}^{\phi\varphi}} \right)}} \\ {{= {2{\sum\limits_{{({s,t})} \in \mathcal{P}_{i}}\;{\sum\limits_{\phi \in \Phi_{t}}\;{{{Im}\left( {\alpha^{\phi - \varphi}{\overset{\_}{z}}_{st}^{\phi\varphi}} \right)}\sum\limits_{k \in {{Down}{(t)}}}}}}}}\mspace{11mu}} \\ {\left\lbrack {{\left( {{2{ap}_{0}^{\phi}} + b} \right){{Re}\left( {\sum\limits_{\xi \in \Phi_{k}}\;{\alpha^{\phi - \xi}{\overset{\_}{y}}_{k}^{\phi\xi}}} \right)}} - \frac{\underset{\_}{\mu}}{v_{k}^{\phi} - {\underset{\_}{v}}_{k}} + \frac{\overset{\_}{\mu}}{{\overset{\_}{v}}_{k} - v_{k}^{\phi}}} \right\rbrack} \end{matrix}$ for  i ∈ 𝒩⁺  and  φ ∈ Φ_(i).

In many embodiments, g_(k) ^(ϕ) can be defined as

$g_{k}^{\phi}{\text{:} = {{\left( {{2{ap}_{0}^{\phi}} + b} \right){{Re}\left( {\sum\limits_{\xi \in \Phi_{k}}\;{\alpha^{\phi - \xi}{\overset{\_}{y}}_{k}^{\phi\;\xi}}} \right)}} - \frac{\underset{\_}{\mu}}{v_{k}^{\phi} - {\underset{\_}{v}}_{k}} + \frac{\overset{\_}{\mu}}{{\overset{\_}{v}}_{k} - v_{k}^{\phi}}}}$ for  k ∈ 𝒩⁺ and ϕ ∈ Φ_(k), then ${{\partial_{p_{i}^{\varphi}}L} = {{2{ap}_{0}^{\varphi}} + b - {2{\sum\limits_{{({s,t})} \in \mathcal{P}_{i}}\;{\sum\limits_{\phi \in \Phi_{t}}\;{{{Re}\left( {\alpha^{\phi - \varphi}{\overset{\_}{z}}_{st}^{\phi\varphi}} \right)}{\sum\limits_{k \in {{Down}{(t)}}}\; g_{k}^{\phi}}}}}}}},{{\partial_{q_{i}^{\varphi}}L} = {2{\sum\limits_{{({s,t})} \in \mathcal{P}_{i}}\;{\sum\limits_{\phi \in \Phi_{t}}\;{{{Im}\left( {\alpha^{\phi - \varphi}{\overset{\_}{z}}_{st}^{\phi\varphi}} \right)}{\sum\limits_{k \in {{Down}{(t)}}}\; g_{k}^{\phi}}}}}}}$ for i ∈ 𝒩⁺ and φ ∈ Φ_(i).

g_(k) can be written in a more compact form: g _(k) =Re[Diag(β ^(Φ) ^(k) )·y _(k)·β^(Φ) ^(k) ]

[2ap ₀ +b]−μ

(ν−ν )+μ

( ν−ν) for k∈

⁺, where

denotes pair-wise multiplication, and

denotes component-wise division, i.e., for a, b∈

^(n) and c∈

, (a

b)_(k) =a _(k) ·b _(k),(c

a)_(k) =c/a _(k) , k=1,2, . . . ,n.

Then, to compute ∂_(p) _(i) L and ∂_(q) _(i) L, first do a backward sweep to compute sumDown_(k) and then do a forward sweep to compute sumUp_(i), more explicitly as follows:

${{sumDown}_{t} = {\sum\limits_{k \in {{Down}{(t)}}}\; g_{k}^{\Phi_{t}}}},{{t \in \mathcal{N}^{+}};}$ h_((s, t)) = Diag(β^(−Φ_(st))) ⋅ z_(st)^(H) ⋅ Diag(β^(Φ_(st))) ⋅ sumDown_(t), s → t; ${{sumUp}_{i} = {\sum\limits_{{({s,t})} \in \Phi_{i}}\; h_{({s,t})}^{\Phi_{i}}}},{i \in {\mathcal{N}^{+}.}}$

The backward-forward procedure woks as

${{sumDown}_{t} = {g_{t} + {\sum\limits_{u\;:\;{t\rightarrow u}}\;{sumDown}_{u}^{\Phi_{t}}}}},{{t \in \mathcal{N}^{+}};}$ sumUp_(i) = sumUp_(h)^(Φ_(i)) + h_((h, i)), h → i.

At last, the expressions for ∂_(p) _(i) L and ∂_(q) _(i) L is as follows: ∂_(p) _(i) L=2ap ₀ ^(Φ) ^(i) +b−2Re(sumUp_(i)), ∂_(q) _(i) L=2Im(sumUp_(i)) for i∈

⁺. Simulated Numerical Results

The accuracy and efficiency of a process similar to process 3 illustrated in FIG. 11 can be evaluated for a number of simulated balanced networks. In particular, the convex relaxation approach can be used to obtain the global optimal value of (1). The amount the objective value obtained by process 3 deviates from the global optimal value can be checked. The convex relaxation is solved by CVX, a convex relaxation approach, and its execution time is used as a benchmark to investigate the simulated efficiency of process 3. All simulations use Matlab 7.9.0.529 (64-bit) with toolbox cvx 1.21 on Mac OS X 103.5 with 2.66 GHz Intel Core 2 Due CPU and 4 GB 1067 MHz DDR3 memory.

Simulated Test Networks

The simulated test networks include a 47-node (47-bus), a 56-node (56-bus) network, and subnetworks of a 2065-node (2065-bus) network. These networks are all in the service territory of Southern California Edison (SCE), a utility company in California, USA. Topologies of the 47-node (47-bus) network and the 56-node (56-bus) network are illustrated in FIGS. 19A and 19B respectively. Table I illustrated in FIG. 20 shows parameters of a simulated 47-node (47-bus) network including line impedances, peak spot load, and nameplate ratings of capacitors and PV generators. Table II illustrated in FIG. 21 shows parameters of a simulated 56-node (56-bus) network including Line impedances, peak spot load, and nameplate ratings of capacitors and PV generators.

Simulated OPF Setup

The following OPF setup is used throughout this section.

-   1. The objective is to minimize power loss in the network, -   2. The power injection constraints are as follows. For each node     (bus) i∈     , there may be multiple devices including loads, capacitors, and PV     panels. Assume that there is a total of D_(i) such devices and label     them by 1, 2, . . . , D_(i). Let s_(i,d)=p_(i,d)+iq_(i,d) denote the     power injection of device d for d=1, 2, . . . , D_(i). If device d     is a load with given real and reactive power consumptions p and q,     then we impose     s _(i,d) =−p−iq.  (13)     If device d is a load with given peak apparent power s_(peak), then     we impose     s _(i,d) =−s _(peak)exp(jθ)  (14)     where θ=cos⁻¹(0.9), i.e, power injection s_(i,d) is considered to be     a constant, obtained by assuming a power factor of 0.9 at peak     apparent power. If device d is a capacitor with nameplate q, then we     impose     Re(s _(i,d))=0 and 0≤Im(s _(i,d))≤ q.  (15)     If device d is a PV panel with nameplate s and real power generation     p_(i), then we impose     Re(s _(i,d))=p _(i) and |s _(i,d) |≤s.  (16)     The power injection at node (bus) i is

$s_{i} = {\sum\limits_{d = 1}^{D_{i}}\; s_{i,d}}$

where s_(i,d) satisfies one of (13)-(16).

-   3. The voltage regulation constraint is considered to be     0.95²≤ν_(i)≤1.05² for i∈     ⁺.     Simulated Results

Numerical results are summarized in Table III illustrated in FIG. 22. Table III shows objective values and CPU times of CVX and IPM. It can be seen that process 3 obtains 70× speed up over the CVX/sedumi approach, at the cost of around 2e-7 suboptimality ratio for large-scale networks. Note that process 3 is run in series rather than parallel due to the limitation of platform on which the simulation was performed. The speed up can be even more significant when parallel implementation is utilized.

Although the present invention has been described in certain specific aspects, many additional modifications and variations would be apparent to those skilled in the art. It is therefore to be understood that the present invention may be practiced otherwise than specifically described. Thus, embodiments of the present invention should be considered in all respects as illustrative and not restrictive. 

What is claimed is:
 1. A node controller comprising: a network interface: a processor; a memory containing: a node controller application; a plurality of node operating parameters describing operating parameters of a node; and a plurality of node operating parameters describing operating parameters for a set of at least one connected node selected from a group consisting of at least one downstream node and at least one upstream node, where the node is connected to the set of at least one connected node in a power distribution network; wherein the processor is directed by the node controller application to: receive a plurality of coordinator parameters describing operating parameters of a node coordinator by the network interface; calculate a plurality of updated node operating parameters of the node using an iterative gradient projection process using the plurality of node operating parameters describing operating parameters of the node and the plurality of node operating parameters describing operating parameters for the set of at least one connected node, wherein: the iterative gradient projection process comprises a backwards sweep process comprising: receiving operating parameters from the one or more downstream nodes; calculating a plurality of updated node operating parameters using the operating parameters from the one or more downstream nodes; and sending the plurality of updated node operating parameters to the one or more upstream nodes; each iteration in the iterative process is determined by the coordinator parameters; and the node operating parameters comprise power injection parameters calculated based on the operating parameters, the plurality of node operating parameters, and the coordinator parameters; and adjust a power flow in the power distribution network by controlling the plurality of node operating parameters describing operating parameters of the node based on the plurality of updated node operating parameters of the node when the power injection parameters are within a specified range.
 2. The node controller of claim 1, wherein the iterative gradient projection process is a distributed process.
 3. The node controller of claim 1, wherein the iterative gradient projection process further comprises calculating gradient parameters.
 4. The node controller of claim 1, wherein the iterative gradient projection process further comprises calculating a gradient step size.
 5. The node controller of claim 1, wherein the iterative gradient projection process further comprises a forward sweep process.
 6. A node controller comprising: a network interface; a processor; a memory containing: a node controller application, a plurality of node operating parameters describing operating parameters of a node; and a plurality of node operating parameters describing operating parameters for a set of at least one connected node selected from a group consisting of at least one downstream node and at least one upstream node, where the node is connected to the set of at least one connected node in a power distribution network; wherein the processor is directed by the node controller application to: receive a plurality of coordinator parameters describing operating parameters of a node coordinator by the network interface; calculate a plurality of updated node operating parameters of the node using an iterative gradient projection process using the plurality of node operating parameters describing operating parameters of the node and the plurality of node operating parameters describing operating parameters for the set of at least one connected node, wherein: the iterative gradient projection process comprises a forward sweep process comprising: receiving operating parameters from the one or more upstream nodes; calculating a plurality of updated node operating parameters using the operating parameters from the one or more upstream nodes; and sending the plurality of updated node operating parameters to the one or more downstream nodes; each iteration in the iterative process is determined by the coordinator parameters; and the node operating parameters comprise power injection parameters calculated based on the operating parameters, the plurality of node operating parameters and the coordinator parameters; and adjust a power flow in the power distribution network by controlling the plurality of node operating parameters describing operating parameters of the node based on the plurality of updated node operating parameters of the node when the power injection parameters are within a specified range.
 7. The node controller of claim 3, wherein calculating gradient parameters further comprises exact calculation of the gradient parameters.
 8. The node controller of claim 3, wherein calculating gradient parameters further comprises an approximation of the gradient parameters.
 9. The node controller of claim 3, wherein calculating gradient parameters is a distributed process.
 10. The node controller of claim 4, wherein calculating a gradient step size is evaluated using a line search.
 11. The node controller of claim 1, wherein the node is part of a radial network topology.
 12. The node controller of claim 1, wherein node operating parameters include power injection, current, and impedance.
 13. The node controller of claim 1, wherein the node is configured to control operating parameters as components in a single phase power distribution network.
 14. The node controller of claim 1, wherein the node is configured to control operating parameters as components in a multiphase balanced power distribution network.
 15. The node controller of claim 1, wherein the node is configured to control operating parameters as components in a multiphase unbalanced power distribution network. 